﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntityLayer;
using FacadeInterface;
using FacadeImplemention;
using System.Collections;

namespace pryCallCenter.Procesos.AdministrarPedido
{
    public partial class frmAdministrarPedido : System.Web.UI.Page
    {
        private clsIFacadeAdministrarPedido InterfaceAdministrarPedido;
        private clsIFacadeRegistrarEncuesta InterfaceRegistrarEncuesta;
        private static List<VerificarDocumentoEstado_Result> ListVerificarDocumentoEstado = null;
        private static List<VerificarRegistroEncuesta_Result> ListVerificarEncuesta = null;
        private static List<ListarPedidosVentasCP_Result> ListPedidosVentasCP = null;
        private Boolean ok;
        private String msg, titulo;
        private String errorCliente, errorEmpresa, errorOperador, errorVendedor;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    txtUsuario.Text = "William Requejo";
                    Fechas();
                    if (Session["USUARIO"] == null)
                    {
                        Response.Redirect("~/Account/Login.aspx", false);
                    }
                    //((Persona)Session["USUARIO"]).CodigoPersona.ToString();
                }

                errorCliente = (Session["ErrorCliente"] != null) ? Session["ErrorCliente"].ToString() : "0";
                errorEmpresa = (Session["ErrorEmpresa"] != null) ? Session["ErrorEmpresa"].ToString() : "0";
                errorOperador = (Session["ErrorOperador"] != null) ? Session["ErrorOperador"].ToString() : "0";
                errorVendedor = (Session["ErrorVendedor"] != null) ? Session["ErrorVendedor"].ToString() : "0";

                if (hid_ErrorCliente.Text == "0") LlenardgvClientes(errorCliente);
                if (hid_ErrorEmpresa.Text == "0") LlenardgvEmpresa(errorEmpresa);
                if (hid_ErrorOperador.Text == "0") LlenardgvOperador(errorOperador);
                if (hid_ErrorVendedor.Text == "0") LlenardgvVendedor(errorVendedor);

                String tipoencuestaBusq = (hid_tipoEncuesta.Text.Trim() != "") ? hid_tipoEncuesta.Text : "";
                CargarListaPedidosVentasCP(tipoencuestaBusq);
                if (!IsPostBack)
                {
                    if (Session["Grabacion"] != null)
                    {
                        lblMensaje.Text = Session["msg"].ToString();
                        Session["msg"] = null;
                        Session["Grabacion"] = null;
                        pcMensaje.HeaderText = "Mensaje";
                        ScriptManager.RegisterStartupScript(this, GetType(), "script", "pcMensaje.Show();", true);
                    }
                }
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL CARGAR LA PAGINA";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        private void Fechas()
        {
            try
            {
                DateTime fechaActual = DateTime.Now;
                string fechaCompleta = fechaActual.ToString("dd/MM/yyyy");
                string fechaInicial = "01/01/" + fechaActual.ToString("yyyy");
                dtpFecha.Text = fechaCompleta;
                dtpFechaInicial.Text = fechaInicial;
                dtpFechaFinal.Text = fechaCompleta;
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL AGREGAR LAS FECHAS";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        protected void AgregarFiltro(object sender, EventArgs e)
        {
             try
            {
                int tipo = (hid_TipoGrilla.Text.Trim() == "") ? 0 : Convert.ToInt16(hid_TipoGrilla.Text);
                switch (tipo)
                {
                    case 1:
                        AgregarCliente();
                        break;
                    case 2:
                        AgregarEmpresa();
                        break;
                    case 3:
                        AgregarOperador();
                        break;
                    case 4:
                        AgregarVendedor();
                        break;
                    default:
                        break;
                }              
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL AGREGAR EL FILTRO";
                 msg = ex.Message;
                 MostrarComentario(msg, titulo);
            }
        }

        private void AgregarCliente()
        {
            try
            {
                int ID = Convert.ToInt32(dgvClientes.GetRowValues(dgvClientes.FocusedRowIndex, "CodigoPersona").ToString());
                String NOM = dgvClientes.GetRowValues(dgvClientes.FocusedRowIndex, "Nombres").ToString();
                String APEPA = dgvClientes.GetRowValues(dgvClientes.FocusedRowIndex, "ApellidoPaterno").ToString();
                String APEMA = dgvClientes.GetRowValues(dgvClientes.FocusedRowIndex, "ApellidoMaterno").ToString();
                txtNomCliente.Text = String.Format("{0} {1}, {2}", APEPA, APEMA, NOM);
                hid_codCliente.Text = ID.ToString();
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL AGREGAR EL CLIENTE";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        private void AgregarEmpresa()
        {
            try
            {
                int ID = Convert.ToInt32(dgvEmpresas.GetRowValues(dgvEmpresas.FocusedRowIndex, "CodigoEmpresa").ToString());
                String NOM = dgvEmpresas.GetRowValues(dgvEmpresas.FocusedRowIndex, "RazonSocial").ToString();
                txtNomEmpresa.Text = String.Format("{0}", NOM);
                hid_codEmpresa.Text = ID.ToString();
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL AGREGAR LA EMPRESA";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        private void AgregarOperador()
        {
            try
            {
                String ID = dgvOperador.GetRowValues(dgvOperador.FocusedRowIndex, "CodigoOperador").ToString();
                String NOM = dgvOperador.GetRowValues(dgvOperador.FocusedRowIndex, "Nombre").ToString();
                txtNomOperador.Text = String.Format("{0}", NOM);
                hid_codOperador.Text = ID;
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL AGREGAR EL OPERADOR";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        private void AgregarVendedor()
        {
            try
            {
                int ID = Convert.ToInt32(dgvVendedor.GetRowValues(dgvVendedor.FocusedRowIndex, "CodigoPersona").ToString());
                String NOM = dgvVendedor.GetRowValues(dgvVendedor.FocusedRowIndex, "Nombres").ToString();
                String APEPA = dgvVendedor.GetRowValues(dgvVendedor.FocusedRowIndex, "ApellidoPaterno").ToString();
                String APEMA = dgvVendedor.GetRowValues(dgvVendedor.FocusedRowIndex, "ApellidoMaterno").ToString();
                txtNomVendedor.Text = String.Format("{0} {1}, {2}", APEPA, APEMA, NOM);
                hid_codVendedor.Text = ID.ToString();
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL AGREGAR EL VENDEDOR";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }        
        
        protected void Nuevo(object sender, EventArgs e)
        {
            RegistraPedido(1);
        }

        protected void Modificar(object sender, EventArgs e)
        {
            RegistraPedido(2);
        }

        protected void VerDetalle(object sender, EventArgs e)
        {
            RegistraPedido(3);
        }

        protected void AnularPedido(object sender, EventArgs e)
        {
            RegistraPedido(4);
        }

        protected void AnularVenta(object sender, EventArgs e)
        {
            RegistraPedido(5);
        }

        protected void Seguimiento(object sender, EventArgs e)
        {
            try
            {
                int index = dgvReporteVentas.FocusedRowIndex;
                if (index != -1)
                {
                    int empresa = Convert.ToInt16(((Persona)Session["USUARIO"]).Empleado.CodigoEmpresa);
                    String tipoDoc = dgvReporteVentas.GetRowValues(dgvReporteVentas.FocusedRowIndex, "tipodoc").ToString();
                    String nropedido = dgvReporteVentas.GetRowValues(dgvReporteVentas.FocusedRowIndex, "nropedido").ToString();
                    ok = VerificarDocumentoEstado(empresa, tipoDoc, nropedido);
                    if (ok == false)
                    {
                        NoCasoUso();
                        /*
                        Session["empresa"] = empresa;
                        Session["tipoDoc"] = tipoDoc;
                        Session["nropedido"] = nropedido;
                        Session["cancel"] = "1";
                        Response.Redirect("~/Procesos/CancelacionVenta/frmCancelacionVenta.aspx");
                        */
                    }
                    else
                    {
                        titulo = "Mensaje";
                        msg = "El Pedido/Venta Debe Estar Aprobado.";
                        MostrarComentario(msg, titulo);
                    }
                }
                else
                {
                    titulo = "Mensaje";
                    msg = "Debe Seleccionar un Pedido/Venta";
                    MostrarComentario(msg, titulo);
                }

            }
            catch (Exception ex)
            {
                titulo = "ERROR AL INGRESAR";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        protected void ValidacionCrediticia(object sender, EventArgs e)
        {
            NoCasoUso();
        }

        protected void AprobarPedido(object sender, EventArgs e)
        {
            RegistraPedido(6);
        }

        protected void CancelacionVenta(object sender, EventArgs e)
        {
            CancelacionVenta();
        }

        protected void EncuestaOperadorVenta(object sender, EventArgs e)
        {
            try
            {
                int index = dgvReporteVentas.FocusedRowIndex;
                if (index != -1)
                {
                    String estado = dgvReporteVentas.GetRowValues(index, "estado").ToString();
                    if (estado == "Aprobado")
                    {
                        String cliente = dgvReporteVentas.GetRowValues(index, "cliente").ToString();
                        String nropedido = dgvReporteVentas.GetRowValues(index, "nropedido").ToString();
                        int empresa = Convert.ToInt32(((Persona)Session["USUARIO"]).Empleado.CodigoEmpresa);
                        String tipodoc = dgvReporteVentas.GetRowValues(index, "tipodoc").ToString();
                        ok = VerificarRegistroEncuesta("OV", nropedido);
                        if (ok == true)
                        {
                            Session["empresa"] = empresa;
                            Session["tipodocumento"] = tipodoc;
                            Session["nropedido"] = nropedido;
                            Session["nomCliente"] = cliente;
                            Session["encuest"] = "1";
                            Response.Redirect("~/Procesos/RegistrarEncuesta/frmRegistrarEncuesta1.aspx");
                        }
                        else
                        {
                            titulo = "Mensaje";
                            msg = "Este pedido ya tiene registrado esta encuesta.";
                            MostrarComentario(msg, titulo);
                        }
                    }
                    else
                    {
                        titulo = "Mensaje";
                        msg = "El Pedido debe estar Aprobado";
                        MostrarComentario(msg, titulo);
                    }
                }
                else
                {
                    titulo = "Mensaje";
                    msg = "Debe Seleccionar un Pedido/Venta";
                    MostrarComentario(msg, titulo);
                }
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL INGRESAR";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        protected void EncuestaServicio(object sender, EventArgs e)
        {
            try
            {
                int index = dgvReporteVentas.FocusedRowIndex;
                if (index != -1)
                {
                    String estado = dgvReporteVentas.GetRowValues(index, "estado").ToString();
                    if (estado == "Aprobado")
                    {
                        String cliente = dgvReporteVentas.GetRowValues(dgvReporteVentas.FocusedRowIndex, "cliente").ToString();
                        String nropedido = dgvReporteVentas.GetRowValues(dgvReporteVentas.FocusedRowIndex, "nropedido").ToString();

                        ok = VerificarRegistroEncuesta("PS", nropedido);
                        if (ok == true)
                        {
                            Session["nropedido"] = nropedido;
                            Session["nomCliente"] = cliente;
                            Session["encuest"] = "2";
                            Response.Redirect("~/Procesos/RegistrarEncuesta/frmRegistrarEncuesta1.aspx");
                        }
                        else
                        {
                            titulo = "Mensaje";
                            msg = "Este pedido ya tiene registrado esta encuesta.";
                            MostrarComentario(msg, titulo);
                        }
                    }
                    else
                    {
                        titulo = "Mensaje";
                        msg = "El Pedido debe estar Aprobado";
                        MostrarComentario(msg, titulo);
                    }
                }
                else
                {
                    titulo = "Mensaje";
                    msg = "El Pedido debe estar Aprobado";
                    MostrarComentario(msg, titulo);
                }
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL INGRESAR";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        private Boolean VerificarRegistroEncuesta(String tipoEncuesta, String nropedido)
        {
            Boolean ok = false;
            int cant = 0;
            try
            {
                InterfaceRegistrarEncuesta = new clsFacadeRegistrarEncuesta();
                ListVerificarEncuesta = new List<VerificarRegistroEncuesta_Result>();
                ListVerificarEncuesta = InterfaceRegistrarEncuesta.VerificarRegistroEncuesta(tipoEncuesta, nropedido);
                foreach (VerificarRegistroEncuesta_Result encuesta in ListVerificarEncuesta)
                {
                    cant = Convert.ToInt16(encuesta.cantidad);
                }
                if (cant > 0)
                {
                    ok = false;
                }
                else
                {
                    ok = true;
                }
            }
            catch (Exception)
            {
                ok = false;
            }
            return ok;
        }

        private void NoCasoUso()
        {
            titulo = "Mensaje";
            msg = "No Existe Caso de Uso para este Boton";
            MostrarComentario(msg, titulo);
        }

        private void RegistraPedido(int tipoRegistro)
        {
            try
            {
                Boolean ok = true;
                if (tipoRegistro == 2 || tipoRegistro == 3 || tipoRegistro == 4 || tipoRegistro == 5 || tipoRegistro == 6)
                {
                    int index = dgvReporteVentas.FocusedRowIndex;
                    if (index != -1)
                    {
                        String tipodoc = dgvReporteVentas.GetRowValues(index, "tipodoc").ToString();
                        String estado = dgvReporteVentas.GetRowValues(index, "estado").ToString();
                        if (tipoRegistro == 4 && tipodoc != "P")
                        {
                            titulo = "Mensaje";
                            msg = "Debe Seleccionar Un Pedido con Estado: Registrado";
                            MostrarComentario(msg, titulo);
                            ok = false;
                        }
                        else if (tipoRegistro == 4 && estado == "Anulado")
                        {
                            titulo = "Mensaje";
                            msg = "El Pedido ya fue anulado";
                            MostrarComentario(msg, titulo);
                            ok = false;
                        }

                        else if (tipoRegistro == 5 && tipodoc != "V")
                        {
                            titulo = "Mensaje";
                            msg = "Debe Seleccionar Una Venta";
                            MostrarComentario(msg, titulo);
                            ok = false;
                        }
                        else if (estado == "Cancelado")
                        {
                            titulo = "Mensaje";
                            msg = "No se Puede Anular la venta por que tiene estado: Cancelado";
                            MostrarComentario(msg, titulo);
                            ok = false;
 
                        }

                        else if (tipoRegistro == 6 && tipodoc != "P" && estado != "Registrado")
                        {
                            if (tipodoc != "P")
                            {
                                titulo = "Mensaje";
                                msg = "Debe Seleccionar Un Pedido";
                                MostrarComentario(msg, titulo);
                                ok = false;
                            }
                            else if (estado != "Registrado")
                            {
                                titulo = "Mensaje";
                                msg = "El Pedido debe estar Registrado";
                                MostrarComentario(msg, titulo);
                                ok = false;
                            }
                        }
                        else
                        {
                            String nropedido = dgvReporteVentas.GetRowValues(index, "nropedido").ToString();
                            Session["nropedido"] = nropedido;
                            ok = true;
                        }
                    }
                    else
                    {
                        titulo = "Mensaje";
                        msg = "Debe Seleccionar un Pedido/Venta";
                        MostrarComentario(msg, titulo);
                        ok = false;
                    }
                }
                if (ok == true)
                {
                    Session["tipoRegistro"] = tipoRegistro;
                    Response.Redirect("~/Procesos/RegistrarPedido/frmRegistrarPedido.aspx");
                }
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL INGRESAR";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        private void CancelacionVenta()
        {
            try
            {
                int index = dgvReporteVentas.FocusedRowIndex;
                if (index != -1)
                {
                    int empresa = Convert.ToInt16(((Persona)Session["USUARIO"]).Empleado.CodigoEmpresa);
                    String tipoDoc = dgvReporteVentas.GetRowValues(dgvReporteVentas.FocusedRowIndex, "tipodoc").ToString(); ;
                    String nropedido = dgvReporteVentas.GetRowValues(dgvReporteVentas.FocusedRowIndex, "nropedido").ToString();
                    ok = VerificarDocumentoEstado(empresa, tipoDoc, nropedido);
                    if (ok == false)
                    {
                        Session["empresa"] = empresa;
                        Session["tipoDoc"] = tipoDoc;
                        Session["nropedido"] = nropedido;
                        Session["cancel"] = "1";
                        Response.Redirect("~/Procesos/CancelacionVenta/frmCancelacionVenta.aspx");
                    }
                    else
                    {
                        titulo = "Mensaje";
                        msg = "El Pedido/Venta Debe Estar Aprobado.";
                        MostrarComentario(msg, titulo);
                    }
                }
                else
                {
                    titulo = "Mensaje";
                    msg = "Debe Seleccionar un Pedido/Venta";
                    MostrarComentario(msg, titulo);
                }
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL INGRESAR";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        private Boolean VerificarDocumentoEstado(int empresa, String tipodoc, String nropedido)
        {
            Boolean ok = false;
            int cant = 0;
            try
            {
                InterfaceAdministrarPedido = new clsFacadeAdministrarPedido();
                ListVerificarDocumentoEstado = new List<VerificarDocumentoEstado_Result>();
                ListVerificarDocumentoEstado = InterfaceAdministrarPedido.VerificarDocumentoEstado(empresa, tipodoc, nropedido);
                foreach (VerificarDocumentoEstado_Result encuesta in ListVerificarDocumentoEstado)
                {
                    cant = Convert.ToInt16(encuesta.cantidad);
                }
                if (cant > 0)
                {
                    ok = false;
                }
                else
                {
                    ok = true;
                }
            }
            catch (Exception)
            {
                ok = false;
            }
            return ok;
        }

        protected void BuscarCliente(object sender, EventArgs e)
        {
            MostrarDataGrid(1);
        }

        private void LlenardgvClientes(String errorCliente)
        {
            try
            {
                if (errorCliente == "0")
                {
                    InterfaceRegistrarEncuesta = new clsFacadeRegistrarEncuesta();
                    dgvClientes.DataSource = InterfaceRegistrarEncuesta.ListarClientes();
                    dgvClientes.DataBind();
                    hid_ErrorCliente.Text = "0";
                }
                else if (errorCliente == "1")
                {
                    titulo = "ERROR";
                    msg = "Error Al Cargar Los Clientes. Por Favor Verificar.";
                    MostrarComentario(msg, titulo);
                }
                Session["ErrorCliente"] = "0";
            }
            catch (Exception ex)
            {
                Session["ErrorCliente"] = "1";
                if (hid_ErrorCliente.Text == "0")
                {
                    titulo = "ERROR AL CARGAR LOS CLIENTES";
                    msg = ex.Message;
                    MostrarComentario(msg, titulo);
                    hid_ErrorCliente.Text = "1";
                }
            }
        }
        
        protected void BuscarEmpresa(object sender, EventArgs e)
        {
            MostrarDataGrid(2);
        }

        private void LlenardgvEmpresa(String errorEmpresa)
        {
            try
            {
                if (errorEmpresa == "0")
                {
                    InterfaceAdministrarPedido = new clsFacadeAdministrarPedido();
                    dgvEmpresas.DataSource = InterfaceAdministrarPedido.ListarEmpresas();
                    dgvEmpresas.DataBind();
                    hid_ErrorEmpresa.Text = "0";
                }
                else if (errorEmpresa == "1")
                {
                    titulo = "ERROR";
                    msg = "Error Al Cargar Las Empresas. Por Favor Verificar.";
                    MostrarComentario(msg, titulo);
                }
                Session["ErrorEmpresa"] = "0";
            }
            catch (Exception ex)
            {
                Session["ErrorEmpresa"] = "1";
                if (hid_ErrorEmpresa.Text == "0")
                {
                    titulo = "ERROR AL CARGAR LAS EMPRESAS";
                    msg = ex.Message;
                    MostrarComentario(msg, titulo);
                    hid_ErrorEmpresa.Text = "1";
                }
            }
        }

        protected void BuscarOperador(object sender, EventArgs e)
        {
            MostrarDataGrid(3);
        }

        private void LlenardgvOperador(String errorOperador)
        {
            try
            {
                if (errorOperador == "0")
                {
                    InterfaceAdministrarPedido = new clsFacadeAdministrarPedido();
                    dgvOperador.DataSource = InterfaceAdministrarPedido.ListarOperadores();
                    dgvOperador.DataBind();
                    hid_ErrorOperador.Text = "0";
                }
                else if (errorOperador == "1")
                {
                    titulo = "ERROR";
                    msg = "Error Al Cargar Los Operadores. Por Favor Verificar.";
                    MostrarComentario(msg, titulo);
                }
                Session["ErrorOperador"] = "0";
            }
            catch (Exception ex)
            {
                Session["ErrorOperador"] = "1";
                if (hid_ErrorOperador.Text == "0")
                {
                    titulo = "ERROR AL CARGAR LOS OPERADORES";
                    msg = ex.Message;
                    MostrarComentario(msg, titulo);
                    hid_ErrorOperador.Text = "1";
                }
            }
        }

        protected void BuscarVendedor(object sender, EventArgs e)
        {
            MostrarDataGrid(4);
        }

        private void LlenardgvVendedor(String errorVendedor)
        {
            try
            {
                if (errorVendedor == "0")
                {
                    InterfaceAdministrarPedido = new clsFacadeAdministrarPedido();
                    dgvVendedor.DataSource = InterfaceAdministrarPedido.ListarVendedores();
                    dgvVendedor.DataBind();
                    hid_ErrorVendedor.Text = "0";
                }
                else if (errorVendedor == "1")
                {
                    titulo = "ERROR";
                    msg = "Error Al Cargar Los Vendedores. Por Favor Verificar.";
                    MostrarComentario(msg, titulo);
                }
                Session["ErrorVendedor"] = "0";
            }
            catch (Exception ex)
            {
                Session["ErrorVendedor"] = "1";
                if (hid_ErrorVendedor.Text == "0")
                {
                    titulo = "ERROR AL CARGAR LOS VENDEDORES";
                    msg = ex.Message;
                    MostrarComentario(msg, titulo);
                    hid_ErrorVendedor.Text = "1";
                }
            }
        }

        protected void BuscarEPSPendiente(object sender, EventArgs e)
        {
            CargarListaPedidosVentasCP("PS");
        }

        protected void BuscarEOVPendiente(object sender, EventArgs e)
        {
            CargarListaPedidosVentasCP("OV");
        }
        
        protected void MostrarPedidosVentas(object sender, EventArgs e)
        {
            CargarListaPedidosVentasCP("");
        }

        private void CargarListaPedidosVentasCP(String tipoencuesta)
        {
            try
            {   
                int codCliente = (hid_codCliente.Text.Trim() != "") ? Convert.ToInt16(hid_codCliente.Text) : 0;
                int codEmpresa = (hid_codEmpresa.Text.Trim() != "") ? Convert.ToInt16(hid_codEmpresa.Text) : 0;
                String codOperador = (hid_codOperador.Text.Trim() != "") ? hid_codOperador.Text : null;
                int codVendedor = (hid_codVendedor.Text.Trim() != "") ? Convert.ToInt16(hid_codVendedor.Text) : 0;
                String estado = (cboEstado.SelectedItem.Value.ToString().Trim() != "") ? cboEstado.SelectedItem.Value.ToString() : null;
                String fhinicial = Convert.ToDateTime(dtpFechaInicial.Value).Date.ToString("yyyyMMdd");
                String fhfinal = Convert.ToDateTime(dtpFechaFinal.Value).Date.ToString("yyyyMMdd");
                tipoencuesta = (tipoencuesta != "") ? tipoencuesta : null;
                hid_tipoEncuesta.Text = tipoencuesta;
                ListPedidosVentasCP = new List<ListarPedidosVentasCP_Result>();
                dgvReporteVentas.DataSource = ListPedidosVentasCP;
                dgvReporteVentas.DataBind();
                InterfaceAdministrarPedido = new clsFacadeAdministrarPedido();
                ListPedidosVentasCP = InterfaceAdministrarPedido.ListarPedidosVentasCP(codCliente, codEmpresa, codOperador, codVendedor, estado, fhinicial, fhfinal, tipoencuesta);
                int cant = ListPedidosVentasCP.Count;
                if (cant != 0)
                {
                    dgvReporteVentas.DataSource = ListPedidosVentasCP;
                    dgvReporteVentas.DataBind();
                }
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL CARGAR LA LISTA PEDIDOS/VENTAS";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        private void MostrarDataGrid(int tipo)
        {
            try
            {
                Boolean ok = true;
                hid_TipoGrilla.Text = tipo.ToString();
                switch (tipo)
                {
                    case 1:
                        dgvClientes.Visible = true;
                        dgvEmpresas.Visible = false;
                        dgvOperador.Visible = false;
                        dgvVendedor.Visible = false;
                        pcFiltro.HeaderText = "Buscar Cliente";
                        ok = (hid_ErrorCliente.Text == "0") ? true : false;
                        titulo = "ERROR AL CARGAR LOS CLIENTES";
                        msg = "Existe un Error al Cargar los Clientes, Por Favor contactese con Soporte.";
                        break;
                    case 2:
                        dgvClientes.Visible = false;
                        dgvEmpresas.Visible = true;
                        dgvOperador.Visible = false;
                        dgvVendedor.Visible = false;
                        pcFiltro.HeaderText = "Buscar Empresas";
                        ok = (hid_ErrorEmpresa.Text == "0") ? true : false;                        
                        titulo = "ERROR AL CARGAR LOS EMPRESAS";
                        msg = "Existe un Error al Cargar los Empresas, Por Favor contactese con Soporte.";
                        break;
                    case 3:
                        dgvClientes.Visible = false;
                        dgvEmpresas.Visible = false;
                        dgvOperador.Visible = true;
                        dgvVendedor.Visible = false;
                        pcFiltro.HeaderText = "Buscar Operador";
                        ok = (hid_ErrorOperador.Text == "0") ? true : false;
                        titulo = "ERROR AL CARGAR LOS OPERADORES";
                        msg = "Existe un Error al Cargar los Operadores, Por Favor contactese con Soporte.";
                        break;
                    case 4:
                        dgvClientes.Visible = false;
                        dgvEmpresas.Visible = false;
                        dgvOperador.Visible = false;
                        dgvVendedor.Visible = true;
                        pcFiltro.HeaderText = "Buscar Vendedor";
                        ok = (hid_ErrorVendedor.Text == "0") ? true : false;
                        titulo = "ERROR AL CARGAR LOS VENDEDORES";
                        msg = "Existe un Error al Cargar los Vendedores, Por Favor contactese con Soporte.";
                        break;
                    default:
                        dgvClientes.Visible = false;
                        dgvEmpresas.Visible = false;
                        dgvOperador.Visible = false;
                        dgvVendedor.Visible = false;
                        pcFiltro.HeaderText = "";
                        break;
                }
                if (ok == true)
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "script", "pcFiltro.Show();", true);
                }
                else
                {
                    MostrarComentario(msg, titulo);
                }
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL MOSTRAR EL FILTRO";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }

        private void MostrarComentario(String msg, String titulo)
        {
            pcMensaje.HeaderText = titulo;
            lblMensaje.Text = msg;
            ScriptManager.RegisterStartupScript(this, GetType(), "script", "pcMensaje.Show();", true);
        }

        protected void NuevoFiltro(object sender, EventArgs e)
        {
            Nuevo();
        }

        private void Nuevo()
        {
            try
            {
                hid_codCliente.Text = "";
                hid_codEmpresa.Text = "";
                hid_codOperador.Text = "";
                hid_codVendedor.Text = "";
                txtNomCliente.Text = "";
                txtNomEmpresa.Text = "";
                txtNomOperador.Text = "";
                txtNomVendedor.Text = "";
                cboEstado.Value = "";
                Fechas();
            }
            catch (Exception ex)
            {
                titulo = "ERROR AL LIMPIAR LAS CAJAS DE TEXTO";
                msg = ex.Message;
                MostrarComentario(msg, titulo);
            }
        }
    }
}